package com.github.Utils;

import com.aspose.cells.License;
import com.aspose.cells.Workbook;

import java.io.*;


/**
 * Word或Excel 转Pdf 帮助类
 *
 * @author lenovo
 * 备注:需要引入 aspose-words-15.8.0-jdk16.jar / aspose-cells-8.5.2.jar
 */
public class PdfUtil {
    /**
     * 验证 License
     * @return
     */
    private static boolean getLicense() {
        boolean result = false;
        try {
            InputStream is = PdfUtil.class.getClassLoader().getResourceAsStream("license.xml"); // license.xml应放在..\WebRoot\WEB-INF\classes路径下
            License aposeLic = new License();
            aposeLic.setLicense(is);
            result = true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }


    /**
     * @param excelPath 需要被转换的excel全路径带文件名
     * @param pdfPath   转换之后pdf的全路径带文件名
     * @param allowedMark   是否允许带水印
     */
    public static void excel2pdf(String excelPath, String pdfPath,boolean allowedMark) {
        if (!allowedMark){
            if (!getLicense()) {
                // 验证License 若不验证则转化出的pdf文档会有水印产生 是否允许带水印
                return;
            }
        }

        try {
            long old = System.currentTimeMillis();
            Workbook wb = new Workbook(excelPath);
            // 原始excel路径
            FileOutputStream fileOS = new FileOutputStream(new File(pdfPath));
            wb.save(fileOS, com.aspose.cells.SaveFormat.PDF);
            fileOS.close();
            long now = System.currentTimeMillis();
            System.out.println("共耗时：" + ((now - old) / 1000.0) + "秒");
            //转化用时
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

   /* public static void writeLocalStrOne(String str,String path){
        try {
            File file = new File(path);
            if (!file.getParentFile().exists()) {
                file.getParentFile().mkdirs();
            }
            file.createNewFile();
            if(str != null && !"".equals(str)){
                FileWriter fw = new FileWriter(file, true);
                fw.write(str);//写入本地文件中
                fw.flush();
                fw.close();
                System.out.println("执行完毕!");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

    }*/


}